'''作业一 九九乘法表'''
'''
for  in 方式
'''
'''
第一种
'''
# 遍历行
for row in range(1,10):
# 遍历列
    for col in range(1,row+1):
# 输出行乘列,在列加1
        print('{}*{}={:<4}'.format(row,col,row*col),end=' ')
# 换行
    print('')
#分隔符
print('='*80)

'''
第二种
'''
# 遍历行
for row in range(9,0,-1):
# 遍历列
    for col in range(1,row+1):
# 输出行乘列,在列加1
        print('{}*{}={:<4}'.format(row,col,row*col),end=' ')
# 换行
    print('')
print('='*80)

'''
第三种
'''
# 遍历行
for row in range(9,0,-1):
# 遍历列
    for col in range(1,row):
        #空格
        print('{:<8}'.format(''),end='')
# 输出行乘列,在列加1
    for col in range(10-row,0,-1):
        #输出结果
        print('{}*{}={:<4}'.format(row,col,row*col),end='')
# 换行
    print('')
print('='*80)

'''
第四种
'''
# 遍历行
for row in range(9,0,-1):
# 遍历列
    for col in range(9-row,0,-1):
        #空格
        print('{:<8}'.format(''),end='')
# 输出行乘列,在列加1
    for col in range(row,0,-1):
        #输出结果
        print('{}*{}={:<4}'.format(row,col,row*col),end='')
# 换行
    print('')


'''
while方式
'''
'''
第一种
'''
#定义变量i
i = 1
#让i小于9保持循环
while i <= 9:
    #定量变量a
    a = 1
    #在a大于等于i时循环结束
    while a<=i:
        #占位符
        print('{}*{}={:<4}'.format(i, a, i * a), end='')
        #因为要让他循环所以要+1不然一直都是1
        a += 1
    #换行
    print()
    # 因为要让他循环所以要+1不然一直都是1
    i +=1
print('='*70)

'''
第二种
'''
# 定义变量
i = 9
# 让i保持循环
while i >= 1:
    #定义变量A
    a=1
    #让a小于等于i保持循环
    while a<=i:
        #占位符
        print('{}*{}={:<4}'.format(i, a, i * a), end='')
        #因为a原始值是1所以要他大于i必须要+1
        a += 1
    #换行
    print()
    #让i减1使循环可以结束
    i -= 1
print('=' * 70)

'''
第三种
'''
#定义变量i
i = 1
#保证i在大于9时结束循环
while i <=9:
    #定于变量a
    a=8
    #当a大于i时输出空格
    while a>=i:
        print('{:<8}'.format(''),end='')
        #每循环一次a就减一次
        a -= 1
    #定义l初始值
    l = i
    #当l小于1时结束输出
    while l >=1:
        #输出结果
        print('{}*{}={:<4}'.format(l, i, l * i), end='')
        #每次循环就减1
        l -=1
    #换行
    print()
    #循环完后+1保证循环
    i += 1
print('='*70)

'''
第四种
'''
#定义变量i
i = 9
#开始进入循环
while i > 0:
    #定义变量a
    a=9
    #保证循环
    while a>0:
        #a大于等于i时输出结果
        if a<= i:
            print('{}*{}={:<4}'.format(a,i,a*i),end='')
        else:
            #否则输出空格
            print(' '*8,end='')
        # 每次循环就减1
        a -= 1
    # 换行
    print()
    # 循环完后-1保证循环
    i -= 1
print('='*70)

'''作业2 统计目录大小'''
#引入os模块
import os
#定义变量
size = 0
#定义函数
def wj_size(wjj):
    #提升函数
    global size
    #获取当前文件下的所有目录
    wj_list = os.listdir(wjj)
    #输出函数
    print(wj_list)
    #开始虚幻
    for q in wj_list:
        #拼接文件夹
        q = os.path.join(wjj,q)
        #判断是否为文件夹
        if os.path.isfile(q):
            size = size + os.path.getsize(q)
            print(os.path.getsize(q))
        #判断是否为文件夹
        if os.path.isdir(q):
            wj_size(q)
    #返回结果
    return size
wj = wj_size(r'C:\Users\杨健\Desktop')
print(wj)
print('总的大小:',wj)

'''作业三 银行系统'''
#用户信息
name_list =[{'username':'haha','password':'123','money':500},
{'username':'heihei','password':'123','money':0},
]

def yh_user(name):
    '''账号'''
    for q in name_list:
        if name == q['username']:
            print(name_list.index(q))
            return name_list.index(q)+1
def yh_password(yh_name,yh_word):
    '''密码'''
    for w in name_list:
        if yh_name == w['username'] and yh_word == w['password']:
            return  True
def yh_qk(id):
    '''取款'''
    money = input('请输入取出金额：')
    while not money.isdigit():
        money = input('输入错误，请重新输入要取出的金额')
    if int(money) <= name_list[id]['money']:
        name_list[id]['money'] -= int(money)
        print('-'*30)
        print('操作成功！此次取款金额:{:.2f},您的余额为：{:.2f} 元'.format(int(money),name_list[id]['money']))
        print('-'*30)
    else:
        print('-'*30)
        print('您的余额为：{:.2f} 元，不足{:.2f}元，请重新操作！'.format(name_list[id]['money'], int(money)))
        print('-'*30)
def yh_cr(id):
    '''存入'''
    money = input('请输入金额:')
    while not money.isdigit():
        money = input('输入错误，请重新输入要存入金额：')
    name_list[1]['money'] += int(money)
    print('-' * 30)
    print('操作成功！此次存入：{:.2f} 元，您的余额为：{:.2f} 元'.format(int(money), name_list[id]['money']))
    print('-' * 30)
def yh_zz(id):
    """转账"""
    zz_user = input('请输入转款用户名：')
    zz_id = yh_user(zz_user)
    if zz_id:  # 转账用户存在
        money = input('请输入转账金额：')
        while not money.isdigit():
            money = input('输入错误，请重新输入转账金额：')

        if int(money) <= name_list[id]['money']:  # 转账金额小于余额
            name_list[id]['money'] -= int(money)  # username 减款
            name_list[zz_id - 1]['money'] += int(money)  # zhuan_user 加款
            print('-' * 30)
            print('操作成功！成功向 {} 转账 {:.2f} 元，您的余额为：{:.2f} 元'.format(zz_user, int(money), name_list[id]['money']))
            print('-' * 30)

        else:  # 转账金额大于余额
            print('-' * 30)
            print('您的余额为：{:.2f} 元，不足{:.2f}元，请重新操作！'.format(name_list[id]['money'], int(money)))
            print('-' * 30)

    else:
        print('-' * 25)  # 转账用户不存在
        print('转账用户不存在，请重新操作！')
        print('-' * 25)
def zcx():
    """程序函数"""
    while True:
        print('=' * 20, '欢迎来到自动取款机', '=' * 20)
        username = input('请输入你的账号：')
        id = yh_user(username)
        print(id)
        if id:
            password = input('请输入你的密码：')
            if yh_password(username, password):  # 密码正确
                #
                print('-' * 20)
                print('登陆成功！')
                print('-' * 20)
                while True:
                    print('''1.查询
                                2.取款
                                3.存入
                                4.转账
                                5.登出''')
                    choice = input('请输入指令：')
                    if choice == '1':  # 查询
                        print('-' * 20)
                        print('您的余额为：{:.2f} 元'.format(name_list[uid - 1]['money']))
                        print('-' * 20)
                        # user_list = [
                        #     {'username': 'enen', 'password': 'enen123', 'money': 100},
                        #     1{'username': 'haha', 'password': 'haha123', 'money': 0},
                        # ]
                    elif choice == '2':  # 取款
                        yh_qk(1)

                    elif choice == '3':  # 存入
                        yh_cr(id - 1)

                    elif choice == '4':  # 转账
                        yh_zz(id - 1)

                    elif choice == '5':  # 登出当前账号
                        print('-' * 25)
                        print('当前帐号登出成功！')
                        print('-' * 25)
                        break

                    else:  # 指令输入错误
                        print('-' * 25)
                        print('指令错误，请重新输入！')
                        print('-' * 25)

            else:  # 密码错误
                print('-' * 25)
                print('密码错误，请重新登陆！')
                print('-' * 25)

        else:  # 账号不存在
            print('-' * 25)
            print('账号不存在，请重新输入！')
            print('-' * 25)
zcx()
